home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / -screenplay- / shareware / solitarexx / scripts / ninetyone.srx < prev    next >
Text File  |  2000-02-29  |  2KB  |  86 lines

  1. /**************************\
  2. ** 91 v1.0 for Solitarexx **
  3. **  by Michal Szafranski  **
  4. \**************************/
  5. OPTIONS RESULTS
  6.  
  7. tex = '"Ninety One v1.0"'
  8. ADDBUTTON 0 10 "Start"
  9. ADDTEXT 4 42 tex 6
  10. ADDBUTTON 12 10 "Abort"
  11. ADDTEXT 13 16 '""' 6
  12. ADDTEXT 14 26 tex 6
  13. SELECTGUI 1
  14. SCREENSIZE 3 0 5 0
  15. DO i = 0 TO 12
  16.     NEWSTACK i 0 0 (i//5) (i%5)
  17.     stack.i = RESULT
  18. END
  19. NEWSTACK 20 2 0 4 2
  20. deck = RESULT
  21. ADDCARDS deck SHUFFLED
  22.  
  23. DO FOREVER
  24.     ACTION
  25.     PARSE VAR RESULT act rest
  26.     IF act = 1 THEN EXIT
  27.     IF act = 3 THEN CALL GAME
  28. END
  29.  
  30. GAME:
  31.     SELECTGUI 4
  32.     sel = 0
  33.     DO UNTIL cont = 1
  34.         CLEANUP deck
  35.         count. = 0
  36.         DO i = 0 TO 12
  37.             CARDSELECT deck 4
  38.             PARSE VAR RESULT xx war xx
  39.             count.war = count.war +1
  40.             MOVECARDS deck stack.i REVERSE
  41.         END
  42.         CALL RECOUNT
  43.     END
  44.     DO FOREVER
  45.         ACTION
  46.         PARSE VAR RESULT act stack sid card
  47.         IF act = 1 THEN EXIT
  48.         IF act = 2 THEN SELECT
  49.             WHEN sid = 20 | cont = 0 THEN ERRBEEP
  50.             WHEN sel = 0 THEN sel=stack
  51.             WHEN sel > 0 THEN CALL DOSTACKS
  52.         END
  53.         IF act = 3 THEN DO
  54.             SELECTGUI 1
  55.             RETURN
  56.         END
  57.     END
  58. RETURN
  59. DOSTACKS:
  60.     WHICHCARD sel
  61.     IF RESULT = 1 THEN RETURN
  62.     CARDSELECT stack 1
  63.     PARSE VAR RESULT xx war xx
  64.     count.war = count.war -1
  65.     MOVECARDS sel stack
  66.     CARDSELECT sel 1
  67.     PARSE VAR RESULT xx war xx
  68.     count.war = count.war +1
  69.     CALL RECOUNT
  70.     sel = 0
  71. RETURN
  72. RECOUNT:
  73.     sum = 13
  74.     cont = 0
  75.     DO i = 1 TO 12
  76.         sum = sum+(i * count.i)
  77.     END
  78.     SETGADGET 13 STR '"Sum:' sum||'"'
  79.     SELECT
  80.         WHEN sum = 91 THEN SETGADGET 13 STR '"Ninety One!"'
  81.         WHEN count.0 >2 THEN SETGADGET 13 STR '"Aces Fault"'
  82.         WHEN count.12 >2 THEN SETGADGET 13 STR '"Kings Fault"'
  83.         OTHERWISE cont = 1
  84.     END
  85. RETURN
  86.